home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / tos_updt / fmcity / palcom / auto / script / hpcom.mx < prev    next >
Text File  |  1995-02-10  |  6KB  |  247 lines

  1. //--------------------------------------------------------------------------//
  2. //                        PALCOM V2.1 L10                        //
  3. //                  自動通信:HP文書送受信スクリプト                        //
  4. //                                                                            //
  5. //                                        CopyRight(C) 1994/10/20                //
  6. //                                FUJITSU PERSONAL COMPUTER SYSTEMS LIMITED    //
  7. //                                        written by C-cube Soft T.Nakamura    //
  8. //--------------------------------------------------------------------------//
  9. event    @OPEN.EXTERN {
  10.     $AUTO.WAIT15 = AUTO.getWaitChar( 15 );
  11.     $AUTO.WAIT60 = AUTO.getWaitChar( 60 );
  12.  
  13.     //---   HPの設定データを取り出す   ---//
  14.     $dataList = AUTO.getHpData();
  15.     $HpList   = list.getNth( $dataList, 1 );
  16.     $StList   = list.getNth( $dataList, 2 );
  17.     $IdList   = list.getNth( $dataList, 3 );
  18.     $PwList   = list.getNth( $dataList, 4 );
  19.     $ChkList  = list.getNth( $dataList, 5 );
  20.     $TagList  = list.getNth( $dataList, 6 );
  21.     if( list.size( $HpList ) == 0 ) {            // HP の登録無し
  22.         return;
  23.     }
  24.  
  25.     //---   アップロード/ダウンロード指定情報の取得   ---//
  26.     $List = list.getNth( AUTO.getAutoData(), 4 );
  27.     if( list.getNth( $List, 1 ) == #TRUE ) {
  28.         $dwFlg = #TRUE;
  29.     } else {
  30.         $dwFlg = #FALSE;
  31.     }
  32.     if( list.getNth( $List, 2 ) == #TRUE ) {
  33.         $upFlg = #TRUE;
  34.         $idxList = AUTO.getUpList( 13 );
  35.     } else {
  36.         $upFlg   = #FALSE;
  37.         $idxList = [];
  38.     }
  39.     $logId   = AUTO.getLogFileId();
  40.  
  41.     //---   HPに入る   ---//
  42.     sys.stopIntRec();
  43.     loop {
  44.         AUTO.putStr("GO HP\r");
  45.         $errFlg  = 1;
  46.         comtable( $a, 300 ) {
  47.             interval    { AUTO.haltCheck();  }
  48.             "GO HP\n"    { $errFlg = 0; exit; }
  49.         }
  50.         if( $errFlg == 0 ) {
  51.             exit;
  52.         }
  53.         AUTO.putStr("\r");
  54.         AUTO.waitPrompt( #TRUE );
  55.         continue;
  56.     }
  57.     $moreFlg = 0;
  58.     $inFlg = 0;
  59.     comtable( $a, 1200 ) {
  60.         "HP\n"            { $inFlg  = 1;            }
  61.         ">\w\w"        { exit;                    }
  62.         $AUTO.WAIT60    { AUTO.putStr("\r");    }
  63.         interval        { AUTO.haltCheck();        }
  64.         timeout            { exit;                    }
  65.     }
  66.     sys.startIntRec();
  67.     if( $inFlg == 0 ) {
  68.         $errMsg =  ["HPのサービスへ入ることが出来ませんでした。",
  69.                     "巡回を中止しました。"];
  70.         AUTO.error("HP巡回", $errMsg );
  71.         $$USER.DEFINED.9 = #FALSE;
  72.         return;
  73.     }
  74.     AUTO.sendCommand("SET PAGE OFF");
  75.     $i  = 1;
  76.     $st = 0;
  77.     foreach( $a, $StList ) {
  78.         if( $a == #FALSE ) {                    // 巡回しない
  79.             $i = $i + 1;
  80.             continue;
  81.         }
  82.  
  83.         //---   HPの番号を取得   ---//
  84.         $hpNo = list.getLast( list.getNth( $TagList, $i ));
  85.  
  86.         //---   HPに入る   ---//
  87.         sys.stopIntRec();
  88.         if( $st == 0 ) {
  89.             AUTO.putStr2("1\r");
  90.             comtable( $b, 0 ) {
  91.                 interval  { AUTO.haltCheck();}
  92.                 ">\w\w"  { $flg = -1; exit; }
  93.                 ":\w\w"  { $flg =  1; exit; }
  94.             }
  95.             if( $flg == -1 ) {
  96.                 $errMsg =  ["HPのサービスへ入ることが出来ませんでした。",
  97.                             "巡回を中止しました。"];
  98.                 AUTO.error("HP巡回", $errMsg );
  99.                 $$USER.DEFINED.9 = #FALSE;
  100.                 return;
  101.             }
  102.         } else {
  103.             AUTO.sendCommand("MOVE");
  104.         }
  105.  
  106.         //---   ID 及びパスワードの送信   ---//
  107.         $cmd = str.join([list.getNth( $IdList, $i ), "\r"], "" );
  108.         $flg = -1;
  109.         AUTO.putStr2( $cmd );
  110.         comtable( $a, 1200 ) {
  111.             interval      { AUTO.haltCheck();}
  112.             ">\w\w"      { $flg = -1; exit; }
  113.             "あなた"      { $flg =  2; }
  114.             "◆該当する"  { $flg =  2; }
  115.             "HP>\w\w"     {
  116.                 if( $flg == 2 ) {
  117.                     $flg = -1;
  118.                 } else {
  119.                     $flg =  0;
  120.                 }
  121.                 exit;
  122.             }
  123.             ":\w\w"      {
  124.                 if( $flg == 2 ) {
  125.                     $flg = -2;
  126.                 } else {
  127.                     $flg =  1;
  128.                 }
  129.                 exit;
  130.             }
  131.         }
  132.         if( $flg < 0 ) {
  133.             $errMsg =  ["HPへ入ることが出来ません。",
  134.                         "開設者IDを確認してください。",
  135.                         str.join(["HP名:", list.getNth( $HpList, $i )],"")];
  136.             AUTO.error("HP巡回", $errMsg );
  137.             $i = $i + 1;
  138.             if( $flg == -2 ) {
  139.                 AUTO.sendCommand("2");
  140.             }
  141.             continue;
  142.         }
  143.  
  144.         if( $flg == 1 ) {
  145.             loop {
  146.                 $cmd = str.join([list.getNth( $PwList, $i ), "\r"], "" );
  147.                 $flg = -1;
  148.                 AUTO.putStr( $cmd );
  149.                 comtable( $a, 1200 ) {
  150.                     interval  { AUTO.haltCheck();}
  151.                     ">\w\w"  { $flg = -1; exit; }
  152.                     ":\w\w"  { $flg =  1; exit; }
  153.                     "HP>\w\w" { $flg =  0; exit; }
  154.                 }
  155.                 if( $flg != 1 ) {
  156.                     exit;
  157.                 }
  158.             }
  159.         }
  160.         if( $flg == -1 ) {
  161.             $errMsg =  ["HPへ入ることが出来ません。",
  162.                         "パスワードを確認してください。",
  163.                         str.join(["HP名:", list.getNth( $HpList, $i )],"")];
  164.             AUTO.error("HP巡回", $errMsg );
  165.             $i = $i + 1;
  166.             continue;
  167.         }
  168.  
  169.         //---   メッセージを書き込む   ---//
  170.         if( $upFlg == #TRUE ) {
  171.             xfer.pauseText( $logId );
  172.             $j    = 1;
  173.             foreach( $b, $idxList ) {
  174.                 if( $hpNo != list.getNth(list.getNth(list.get1st($b),2),3 )) {
  175.                     $j = $j + 1;
  176.                     continue;
  177.                 }
  178.                 $$USER.DEFINED.9 = [$b, 2];
  179.                 $path = str.join([$$DIR.STANDARD,
  180.                                   "AUTO\\SCRIPT\\SENDFILE.MX"], "" );
  181.                 script.openExtern( $path, #FALSE, [] );
  182.                 if( AUTO.getHaltFlg() != 0 ) {
  183.                     return;
  184.                 }
  185.                 if( $$USER.DEFINED.9 == #TRUE ) {
  186.                     AUTO.setSendFlg( $b );
  187.                 }
  188.                 $j = $j + 1;
  189.             }
  190.             xfer.resumeText( $logId );
  191.         }
  192.  
  193.         //---   新規の文書をダウンロード   ---//
  194.         if( $dwFlg == #TRUE ) {
  195.             AUTO.putStr2("READ NEW\r");
  196.             $ptr  = file.tell( $logId );
  197.             $ptr2 = $ptr;
  198.             $mode = 0;
  199.             comtable( $a, 0 ) {
  200.                 interval        { AUTO.haltCheck();  }
  201.                 $AUTO.WAIT60    { AUTO.putStr("\r"); }
  202.                 "\n"            {                // 行のカウント用
  203.                     $ptr2 = file.tell( $logId );
  204.                 }
  205.                 "%3d  [%2d/%2d/%2d %2d:%2d]  %3c%5d" {
  206.                     if( file.tell( $logId ) == $ptr2 + 31 ) {
  207.                         if( $mode == 1 ) {        // 見出しにマッチ
  208.                             AUTO.writeIdx([
  209.                                 [0x501,[13,[1,3,$hpNo,$no,-1,-1,-1,-1,-1,-1]]],
  210.                                 [0x104,[$title]],
  211.                                 [0x303,[0x01,0x00,$ptr,$ptr2-$ptr,0,0,0]]] );
  212.                             $ptr = $ptr2;
  213.                         }
  214.                         $mode  = 1;
  215.                         $line  = 1;
  216.                         $no    = data.toNumber( str.left( $a, 3 ));
  217.                         $title = str.join([str.right( $a, 8 ), str.replaceAll(
  218.                                     com.getString(0,#TRUE,#TRUE),"\n","")],"");
  219.                     }
  220.                 }
  221.                 "HP>\w\w"        {                // プロンプト(終了)
  222.                     if( $mode == 1 ) {
  223.                         AUTO.writeIdx([
  224.                             [0x501,[13,[1,3,$hpNo,$no,-1,-1,-1,-1,-1,-1]]],
  225.                             [0x104,[$title]],
  226.                             [0x303,[0x01,0x00,$ptr,$ptr2-$ptr,0,0,0]]] );
  227.                     }
  228.                     exit;
  229.                 }
  230.             }
  231.         }
  232.         $i = $i + 1;
  233.         $st = 1;
  234.     }
  235.     sys.startIntRec();
  236.     return;
  237. }
  238. event    @CLOSE.EXTERN {
  239.     sys.startIntRec();
  240.     return;
  241. }
  242. event    @ERROR {
  243.     sys.startIntRec();
  244.     AUTO.fatalError();
  245.     event.mainLoop();
  246. }
  247.